package com.sqx.modules.app.entity.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @description：TODO
 * @author： qiao
 * @create： 2025/2/28 10:30
 */
@Data
public class UserDTO {

    /**
     * 用户id
     */
    @TableId(value = "user_id", type = IdType.AUTO)
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名")
    private String userName;

    /**
     * 个人介绍
     */
    @ApiModelProperty(value = "个人介绍")
    private String profile;
    /**
     * 手机号
     */
    @ApiModelProperty(value = "手机号")
    private String phone;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    private String avatar;

    /**
     * 性别 1男 2女
     */
    @ApiModelProperty(value = "性别 1男 2女")
    private Integer sex;

    /**
     * 年龄
     */
    @ApiModelProperty(value = "年龄")
    private Integer age;

    /**
     * 微信小程序openId
     */
    @ApiModelProperty(value = "微信小程序openId")
    private String openId;

    /**
     * 微信App  openId
     */
    @ApiModelProperty(value = "微信公众号openId")
    private String wxOpenId;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    private String password;
    /**
     * 加密盐
     */
    @ApiModelProperty(value = "加密盐")
    private String salt;

    /**
     * 苹果id
     */
    @ApiModelProperty(value = "苹果id")
    private String appleId;

    /**
     * 手机类型 1安卓 2ios
     */
    @ApiModelProperty(value = "手机类型 1安卓 2ios")
    private Integer sysPhone;

    /**
     * 状态 1正常 2禁用
     */
    @ApiModelProperty(value = "状态 1正常 2禁用")
    private Integer status;
    /**
     * 0待审核 1已通过 2已拒绝
     */
    @ApiModelProperty(value = "0待审核 1已通过 2已拒绝")
    @TableField(exist = false)
    private Integer status1;

    /**
     * 来源 APP 小程序  公众号
     */
    @ApiModelProperty(value = "来源 APP 小程序  公众号")
    private String platform;

    /**
     * app推送id
     */
    @ApiModelProperty(value = "app推送id")
    private String clientid;

    /**
     * 支付宝名称
     */
    @ApiModelProperty(value = "支付宝名称")
    private String zhiFuBaoName;

    /**
     * 支付宝账号
     */
    @ApiModelProperty(value = "支付宝账号")
    private String zhiFuBao;

    /**
     * 是否推送消息
     */
    @ApiModelProperty(value = "是否推送消息")
    private Integer isSendMsg;
    /**
     * 是否已认证 0未实名 1待实名 2未通过
     */
    @ApiModelProperty(value = "是否已认证 0未实名 1待实名 2未通过")
    private Integer isAuth;

    /**
     * 微信提现图片
     */
    @ApiModelProperty(value = "微信提现图片")
    private String wxImg;

    /**
     * 最近一条信息内容
     */
    @ApiModelProperty(value = "最近一条信息内容")
    private String msg;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 邀请码
     */
    @ApiModelProperty(value = "邀请码")
    private String invitationCode;
    /**
     * 邀请人邀请码
     */
    @ApiModelProperty(value = "邀请人邀请码")
    @TableField("inviter_code")
    private String inviterCode;
    /**
     * 邀请人的人上级
     */
    @ApiModelProperty(value = "邀请人的人上级")
    @TableField("inviter_inviter_code")
    private String inviterInviterCode;

    @ApiModelProperty("下级抽佣比例")
    private String divideScale;

    @ApiModelProperty("二级抽佣比例")
    private String divideTwoScale;

    /**
     * 金币总数
     */
    @ApiModelProperty("金币总数")
    private Integer totalGold;

    /**
     * 是否是管理员 0否 1是
     */
    @ApiModelProperty(value = "是否是管理员 0否 1是")
    private Integer isAdmin;

    @ApiModelProperty(value = "钱包金额(前端展示用)")
    @TableField(exist = false)
    private String money;

    @ApiModelProperty(value = "关注数(前端展示用)")
    @TableField(exist = false)
    private Integer followCount;

    /**
     * 信用分（默认是0）
     */
    @ApiModelProperty(value = "信用分（默认是0）")
    private Integer creditScore;

    /**
     * 是否回收人员：0否 1是
     */
    @ApiModelProperty("是否回收人员：0否 1是")
    private Integer recycleStatus;

    /**
     * 类型：1增加 2减少
     */
    @TableField(exist = false)
    @ApiModelProperty("类型：1增加 2减少")
    private Integer type;
}
